package de.sup.scs.prototyp.client.gin;

import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;
import com.gwtplatform.mvp.client.gin.DefaultModule;
import de.sup.scs.prototyp.client.ui.footer.FooterPresenter;
import de.sup.scs.prototyp.client.ui.footer.FooterView;
import de.sup.scs.prototyp.client.ui.graphic.pultdach.GraphicPDPresenter;
import de.sup.scs.prototyp.client.ui.graphic.pultdach.GraphicPDView;
import de.sup.scs.prototyp.client.ui.graphic.satteldach.GraphicSDPresenter;
import de.sup.scs.prototyp.client.ui.graphic.satteldach.GraphicSDView;
import de.sup.scs.prototyp.client.ui.graphic.walmdach.GraphicWDPresenter;
import de.sup.scs.prototyp.client.ui.graphic.walmdach.GraphicWDView;
import de.sup.scs.prototyp.client.ui.main.MainPagePresenter;
import de.sup.scs.prototyp.client.ui.main.MainPageView;
import de.sup.scs.prototyp.client.ui.title.TitlePresenter;
import de.sup.scs.prototyp.client.ui.title.TitleView;
import de.sup.scs.prototyp.client.ui.toolbox.ToolBoxPresenter;
import de.sup.scs.prototyp.client.ui.toolbox.ToolBoxView;

public class PrototypClientModule extends AbstractPresenterModule{

    @Override
    protected void configure() {
        install(new DefaultModule(PrototypPlaceManager.class));

        bindPresenter(MainPagePresenter.class,
                MainPagePresenter.MyView.class,
                MainPageView.class,
                MainPagePresenter.MyProxy.class);

        bindPresenter(GraphicPDPresenter.class,
                      GraphicPDPresenter.MyView.class,
                      GraphicPDView.class,
                      GraphicPDPresenter.MyProxy.class);

        bindPresenter(GraphicSDPresenter.class,
                      GraphicSDPresenter.MyView.class,
                      GraphicSDView.class,
                      GraphicSDPresenter.MyProxy.class);

        bindPresenter(GraphicWDPresenter.class,
                      GraphicWDPresenter.MyView.class,
                      GraphicWDView.class,
                      GraphicWDPresenter.MyProxy.class);

        bindPresenter(TitlePresenter.class,
                      TitlePresenter.MyView.class,
                      TitleView.class,
                      TitlePresenter.MyProxy.class);

        bindPresenter(FooterPresenter.class,
                      FooterPresenter.MyView.class,
                      FooterView.class,
                      FooterPresenter.MyProxy.class);

        bindPresenter(ToolBoxPresenter.class,
                      ToolBoxPresenter.MyView.class,
                      ToolBoxView.class,
                      ToolBoxPresenter.MyProxy.class);
    }
}
